package com.code.day16DuoXian2;

/**
 * 包子铺类 - 作为生产者和消费者共享的资源
 * 包含包子数量和状态标识
 */
public class BaoZiPU {
    // 包子计数器
    private int count;
    // 包子状态标志：true表示有包子可消费，false表示无包子需生产
    private boolean flag;

    /**
     * 默认构造函数
     */
    public BaoZiPU() {
    }

    /**
     * 带参数构造函数
     *
     * @param count 初始包子数量
     * @param flag  初始包子状态
     */
    public BaoZiPU(int count, boolean flag) {
        this.count = count;
        this.flag = flag;
    }

    /**
     * 消费包子的方法
     * 输出消费的包子序号
     */
    public void getCount() {
        System.out.println(Thread.currentThread().getName() + "   " + "消费了了第....." + count + "包子");
    }

    /**
     * 生产包子的方法
     * 增加包子计数并输出生产信息
     */
    public void setCount() {
        count++;
        System.out.println(Thread.currentThread().getName() + "   " + "生成了第.." + count + "包子");
    }

    /**
     * 获取包子状态
     *
     * @return true表示有包子，false表示无包子
     */
    public boolean isFlag() {
        return flag;
    }

    /**
     * 设置包子状态
     *
     * @param flag 包子状态：true有包子，false无包子
     */
    public void setFlag(boolean flag) {
        this.flag = flag;
    }
}
